home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-10-08 | 100.1 KB | 1,968 lines |
- Appendix B
-
- Using DESQview with Expanded Memory, Extended Memory, or a 386 PC
-
- The most important resources available to DESQview are the speed of your
- computer and the amount and type of memory you have installed. The faster
- your PC is, the more quickly DESQview (or any other program) can perform
- its functions. But speed is not DESQview's most critical resource; memory
- is. How much memory you have, and how that memory is configured is very
- important to DESQview. The reason is that most programs written for DOS
- 2.x to 4.x may access only the first 1024K (one megabyte) of memory, and
- typically they only use the first 640K, since the other memory areas are
- resvered for special functions. The maximum amount of memory that most
- programs and data can occupy is 640K, including DOS.
-
- When you run a single program on your PC, 640K is the maximum size of DOS,
- your program, and its data. So, on a 640K system, the size of the largest
- single program you can ever run inside DESQview is about 430K ~dash~
- because DOS takes approximately 60K and DESQview takes about 150K.
-
- If you run multiple programs, 430K is the maximum size of all the programs
- you can run concurrently, including all their data. (The term concurrently
- means that multiple programs are both loaded into the 0K-640K area of
- memory and may run simultaneously in this area.) This amount of memory can
- be very limiting for many of today's DOS programs, so ways of reducing DOS
- and DESQview overhead are often used in order to increase the size of
- memory available for each program.
-
- ~Subhead~ ExTENDed Memory
-
- The first 640K of memory is called conventional memory. An 80286 or 386
- or i486 PC can also have many megabytes of another type of memory, called
- exTENDed memory. ExTENDed memory begins at 1024K and continues from there;
- it is NOT located between 640K and 1024K. A new classification of
- programs, using a "DOS extender" can actually run in exTENDed memory and
- use some of the lower 640K to handle their work with DOS. These programs
- are specially written to be DOS extended by the program's developer. Lotus
- 1-2-3 Release 3 is an example of one such program. Except for DOS extended
- programs, exTENDed memory is severely limited in utility by the fact that
- most existing DOS programs can't use it, either to run themselves or to
- store data.
-
- DESQview, however, is an exception ~dash~ it can run 64K of itself in the
- first 64K of exTENDed memory. So, if you have an 80286 or 386 PC with
- exTENDed memory installed, DESQview's overhead (in conventional memory)
- drops by 64K to about 85K ~dash~ and the largest program you run
- accordingly increases by 64K to 495K. DESQview was the first DOS program
- to use this area. Other programs have now also been modified to use it as
- well. The first 64K of exTENDed memory is usually called the "High Memory
- Area" (HMA), and may be used by only one program.
-
- ~Subhead~ ExPANDed Memory
-
- In order to access more than 640K on all types of DOS computers (including
- 8088 and 8086), another type of memory was invented ~dash~ called exPANDed
- memory (EMS). It is possible to both store data and run programs in
- exPANDed memory, but only when the memory is configured properly and
- managed effectively. DESQview can manage exPANDed memory for multiple
- programs, even if those programs have not been modified to understand
- expanded memory themselves. It is the "control program" you need to
- actually make use of all the capabilities of the EMS memory technology.
-
- ~Subhead~ 386 or i486 PCs
-
- On a 386 or i486 PC, you DO NOT need a special EMS memory board. All you
- need is standard 386 exTENDed memory, Quarterdeck Expanded Memory Manager
- 386 (QEMM-386), and DESQview. QEMM-386 converts a 386 or i486 PC's
- exTENDed memory into expanded memory. DESQview acts as the "control
- program" to take advantage of the ability of the 386 PC's virtual 86
- machine architecture to emulate EMS memory. To DESQview and QEMM-386, an
- 80386SX or i486 PC has the same memory management features as a 386 PC.
-
- ~Subhead~ Determining the Largest Program Size in DESQview
-
- The table below shows how having EMS memory or a 386 PC, DESQview can
- reduce its overhead substantially ~dash~ even to zero in some cases ~dash~
- by loading part of itself in both exTENDed and EMS memory. Your values may
- be slightly smaller or much larger depending on your use of the LOADHI
- programs which come with QRAM and QEMM.
-
- ~Subhead~ About this Appendix
-
- Below is the table of contents for the rest of this appendix. All of you
- should read the first three sections, pages 135-139. The Expanded Memory
- Technology is for the more technically minded ~dash~ and can be skipped if
- you're not interested in the details. Optimizing How DESQview Uses EEMS
- Memory and Reducing Your System's Memory aren't mandatory reading either,
- but you may need to take some of the steps described in these sections to
- get the Largest Program Size listed above.
-
- DESQview's power increases when you add an expanded memory board to your
- PC, PC-XT, or PC-AT, or when you run DESQview on a 386 PC in conjunction
- with Quarterdeck Expanded Memory Manager 386
-
- ~Begin footnote~
-
- If you use a 386 expanded memory manager other than QEMM-386 (such as the
- Compaq Expanded Memory Manager), you may not be able to take advantage of
- all of DESQview's 386 PC capabilities.
-
- ~End footnote~
-
- (QEMM-386). There are two standard types of expanded memory. DESQview
- supports both:
-
- ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
- Memory Specification Version 3 or Version 4. This is usually abbreviated
- as EMS memory, EMS3 memory, EMS4 memory, LIM memory, or sometimes LIM-EMS
- memory.
-
- ~Item~ Expanded memory that follows the AST/Quadram/Ashton-Tate Enhanced
- Expanded Memory Specification. This is usually abbreviated as EEMS memory
- or sometimes enhanced-EMS memory.
-
- Memory boards which were originally designed for EMS3 can have an EMS4
- driver written for them, but they will not gain all of the new features of
- EMS4 because they lack the necessary hardware to perform the advanced
- functions such as mapping more than 64K of memory at one time. EEMS memory
- boards can become EMS4 memory boards by simply obtaining an EMS4 software
- driver from the manufacturer, because the extra hardware necessary for the
- advanced functions is built into EEMS boards. Almost all references to
- EMS4 in this manual apply to EEMS as well.
-
- The extra DESQview capabilities available to you are directly related to
- the amount and type of expanded memory you have. DESQview uses either type
- to its fullest potential and automatically detects its presence, as long as
- you've loaded an expanded memory manager~dagger~ (EMM) when you booted your
- system.
-
- DESQview is not compatible with expanded memory emulators on 80286 PC's
- which convert exTENDed memory or disk space into exPANDed memory without
- additional hardware. These programs use significant amounts of memory
- below 640K and are not fast enough to perform effectively with DESQview.
-
- ~Subhead~ Determining If You Have Expanded Memory
-
- You have expanded memory that's compatible with DESQview:
-
- ~Item~ On a PC, PC-XT, or PC-AT, only if you've purchased an expanded
- memory board and installed it on your PC along with the corresponding
- expanded memory manager driver program. Examples of these are:
-
- ~dash~ EMS Version 3 (EMS3) boards, such as the Intel AboveBoard,
- BocaRAM, and Everex RAM 3000 and others which can only use 64K of expanded
- memory at any one time.
-
- ~dash~ Enhanced-EMS (EEMS) boards (which include EMS3 memory as a
- subset), such as the AST RAMpage, AST SixPakPremium, AST Advantage Premium,
- and PC Technologies RAMpartner.
-
- ~dash~ EMS Version 4 (EMS4) boards (which also include EMS3 memory as a
- subset) such as the Intel AboveBoard Plus, All Computers CHARGECARD,
- Computer Peripherals CPI-XMA, Everex RAM 8000, Newer Technologies
- Concentration, STB Rapidmeg, Teletek X-Bandit, Dakota Research ???, and any
- of the EEMS boards with an EMS4 driver. These boards can access more than
- 64K of expanded memory at any one time.
-
- ~Item~ On a 386 PC, only if you have installed Quarterdeck Expanded Memory
- Manager 386~dagger~ (QEMM-386).
-
- An exPANDed memory board is not the same as an exTENDed memory board. The
- similarity of names makes this a confusing point. Unless your memory board
- explicitly says that it's an expanded memory board that supports the EMS or
- EEMS standard (or you have a 386 PC and QEMM-386), you don't have expanded
- memory. (See page ?qext?for information on using DESQview with exTENDed
- memory.)
-
- ~Heading~ How DESQview Uses Expanded Memory
-
- DESQview uses expanded memory in three ways:
-
- ~Item~ As data storage, for programs that explicitly know about and use EMS
- memory for data ~dash~ such as 1-2-3 Release 2 or Release 3, WordPerfect 5,
- Paradox, and so forth.
-
- ~Item~ As a "swapping" area, to temporarily store programs when DESQview
- needs additional space to load other programs or to save "graphics
- screens".
-
- ~Item~ As program memory ~dash~ which is to say, as memory that programs
- can run in.
-
- Expanded memory can also be used for RAM disks, print spoolers, and disk
- caches. When used for these, load these driver programs before you start
- up DESQview, so that all the programs you run can take advantage of their
- features.
-
- ~Subhead~ Using Expanded Memory as Data Storage
-
- Many programs ~dash~ such as 1-2-3 Release 2 ~dash~ use exPANDed memory to
- make large amounts of data available quickly. When DESQview is used on a
- system with expanded memory, it extends this capability by allowing several
- programs to use expanded memory at the same time. DESQview ensures that
- each program's use of expanded memory doesn't interfere with any other
- program's use of it.
-
- For example, you could have 1-2-3 Release 2 and WordPerfect each storing
- data in expanded memory while running in its own window. DESQview
- automatically manages the allocations of expanded memory so that each
- program "sees" only its own expanded memory area.
-
- ~Subhead~ Using Expanded Memory as a "Swapping" Area
-
- When all the programs you want to run at the same time won't fit in
- memory, DESQview automatically manages memory for you by "swapping"
- programs in and out as you need them. Although swapping can be done to a
- hard disk, a RAM disk, or expanded memory, it's fastest when done to
- expanded memory. Any type of expanded memory may be used for swapping.
-
- When you start up a program, DESQview begins by finding a place in memory
- for it to run. If there's an unused area large enough, DESQview puts the
- program in that area.
-
- Programs loaded in the first 640K can run concurrently, since they're
- running in the memory that DOS knows about and supports. However, if
- there's no unused area large enough for the program to fit in, one or more
- of the programs already loaded are swapped out to make room ~dash~ which is
- to say, they're removed from memory and stored somewhere else temporarily.
-
- Programs that are swapped out are frozen (suspended) ~dash~ because those
- programs are no longer "in memory", where they must be for your PC to
- execute them. When you switch back to a swapped out program, it's reloaded
- into memory and resumes where it left off when it was swapped out.
- (Programs that can't be arbitrarily suspended ~dash~ such as communications
- programs ~dash~ must be nonswappable.)
-
- The amount of time it takes to swap one program out and another program in
- is highly variable. If you're swapping to a hard disk, the time depends on
- the size of your program and the speed of your hard disk. Hard disk times
- vary enormously. A "fast" disk may swap three or even five times faster
- than a "normal" disk.
-
- Swapping to a RAM disk is faster, but still not optimal because, even
- though RAM disk is "memory", accessing it still incurs DOS overhead. The
- fastest method is swapping to expanded memory. It's virtually
- instantaneous.
-
- ~Subhead~ Using Expanded Memory as "Program" Memory
-
- Although "swapping" programs to expanded memory is nice, "running"
- programs in expanded memory is even better. You can run programs in
- expanded memory only if you have fully hardware compatible EMS4 memory,
- ENHANCED expanded memory (EEMS), or are using a 386 PC in conjunction with
- QEMM-386.
-
- Running programs in expanded memory means that you can run more programs
- than would normally fit in 640K. In fact, you can run as many programs
- simultaneously as will fit in your entire expanded memory, up to 32MB
- worth. The size of each program is less than 640K (not counting the data a
- program may store in expanded memory), and the total amount of memory used
- for running programs can be many megabytes.
-
- You cannot run programs in expanded memory if you have EMS3 memory. The
- reason is that with EMS3 your PC can only "see" one 64K chunk of EMS memory
- at any one time while, with fully hardware compatible EMS4 memory, or EEMS,
- it can "see" enough memory to run most existing DOS programs. It is
- important to note that an EMS3 board may have an EMS4 driver, but this does
- not allow the extra hardware features of EMS4 such as multitasking.
-
- However, you only get capability to run programs in EMS4 memory when
- DESQview manages your EMS4 memory. Note that DESQview runs off-the-shelf
- programs in EMS4 memory. You don't need any special versions or have to
- upgrade your existing software. The programs you now own will run in EMS4
- memory as they stand.
-
- But, this capability doesn't come without some work on your part. To
- properly use EMS4 memory, you may need to "disconnect" some of your
- conventional memory (below 640K) and substitute EMS4 memory for it.
- Although you may be reluctant to "disconnect" perfectly good memory, if you
- don't, you severly limit the number and size of programs you can run in
- EMS4 memory. In the worst case, you can't run any programs in EMS4 memory
- ~dash~ see Optimizing How DESQview Uses EMS4 Memory on page 149. Note that
- "disconnecting" conventional memory usually just involves changing switch
- settings, and doesn't require you to modify you hardware. Also, there is
- no need to "disconnect" memory on a 386 PC.
-
- ~Heading~ Installing Expanded Memory
-
- It's not necessary to do anything special to make expanded memory work
- with DESQview. Each time you start up DESQview, it checks for the presence
- of expanded memory and automatically uses it if it's available. So, it
- doesn't matter to DESQview whether you install DESQview first, expanded
- memory first, or both at the same time.
-
- ~Subhead~ If You Have a PC, PC-XT, or PC-AT
-
- When you install an expanded memory board on a PC, PC-XT, or PC- AT, be
- sure to follow the board manufacturer's instructions carefully. You must
- perform at least these four basic steps:
-
- ~Step~ Verify that the default factory switch settings are correct for your
- hardware configuration and, if they're not, make them correct.
-
- ~Step~ Open up your PC chassis and install the board in an empty slot.
-
- ~Step~ Install the expanded memory manager (EMM) for the board on your boot
- disk and in your CONFIG.SYS file.
-
- ~Step~ Reboot your system to load this expanded memory manager.
-
- Although it's sufficient to follow these steps, there are additional steps
- we recommend ~dash~ but that aren't mandatory ~dash~ depending on the type
- of expanded memory board you've installed:
-
- ~Item~ EMS3 board. We recommend that you use part of your EMS3 board for
- swapping programs and "graphics screens". This occurs automatically unless
- you've run the Setup program and specified an explicit SWAP drive to use
- (see Appendix A). Also, you can reduce DESQview's overhead if you have 64K
- of exTENDed memory (see page ?qext?) which may require you to change your
- EMS board's settings if you don't already have exTENDed memory. There's no
- way to improve how DESQview uses EMS3 memory or to use EMS memory to run
- programs. This is a fundamental limitation of the EMS3 hardware design.
-
- ~Item~ EMS4 or EEMS board. We strongly recommend that you optimize the use
- of EMS4 or enhanced expanded memory by taking the following two steps:
-
- ~dash~ Use as much of the unused area between 640K and 1024K as can be
- controlled by your board. This means that you should be sure you are using
- DV.COM (which is a copy of XDV.COM) in place of DV.EXE (the INSTALL
- procedure does this for you), and possibly using QRAM from Quarterdeck (a
- separate product) to move resident programs and parts of DOS into the
- unused areas.
-
- ~dash~ "Disconnect" part of your conventional memory (below 640K) and let
- your EMS4 board provide it instead. See Reducing Your System's Memory on
- page 156 of this appendix for the steps involved.
-
- The remaining sections of this appendix, starting on page 140, discuss how
- expanded memory works and why it's advantageous to follow these steps.
-
- ~Subhead~ If you Have a 386, 386SX, or i486 PC
-
- If you have a 386, 386SX, or i486 PC (they're all the same to DESQview and
- QEMM-386), there's no need to install a special expanded memory board
- because, on a 386 PC, standard 386 exTENDed memory can act like expanded
- memory. There are only three things you must do:
-
- ~Step~ Install Quarterdeck Expanded Memory Manager 386
-
- ~Begin footnote~
-
- Or, install the expanded memory manager supplied with your 386 PC, if it's
- compatible ~dash~ such as the Compaq Expanded Memory Manager (CEMM)
- supplied with the Compaq Deskkpro 386. However, if you don't use QEMM-386,
- you may not be able to take advantage of all of DESQview's 386 PC
- capabilities.
-
- ~End footnote~
-
- (QEMM-386) on your hard disk and in your CONFIG.SYS file.
-
- ~Step~ Reboot your system to load this expanded memory manager.
-
- ~Step~ Use as much of the unused area between 640K and 1024K as possible.
- This means that you should be sure you are using DV.COM (which is a copy of
- XDV.COM) in place of DV.EXE (the INSTALL procedure does this for you), and
- possibly using LOADHI from Quarterdeck (which comes with QEMM-386) to move
- resident programs and parts of DOS into the unused areas.
-
- If you have a 386 PC, but don't have an expanded memory manager (EMM),
- contact your dealer or Quarterdeck for information on QEMM-386.
-
- ~Subhead~ Verifying That Expanded Memory is Correctly Installed
-
- Once you've installed your expanded memory board (except on a 386 PC),
- installed the expanded memory manager, and rebooted your system, it's
- useful to be able to determine whether you've installed everything
- correctly:
-
- ~Item~ When you reboot, watch the screen for information about expanded
- memory ~dash~ generally in the form of a count-up as expanded memory is
- tested. If no expanded memory information appears, you've done something
- wrong.
-
- ~Item~ If you're familiar with DESQview, run the Memory Status program (see
- pages 160-161). If a nonzero number appears under Total Expanded Memory,
- DESQview has recognized that you have expanded memory installed. If the
- number is zero, you've done something wrong.
-
- If DESQview won't start up, you probably have a memory conflict in the
- 640K to 1024K area. See Appendix E, Troubleshooting for hints on how
- pinpoint the conflicting memory area and get DV.COM (XDV.COM) to avoid it.
-
- Something else you might want to do, for your programs that store data in
- expanded memory, is to limit the amount of expanded memory the program can
- use ~dash~ by entering a value for Maximum Expanded Memory Size (in K) on
- the Change a Program menu for the program (see page 115). This is
- especially important for programs that immediately seize all of expanded
- memory when they start up.
-
- REMEMBER: An expanded memory manager (EMM) must be loaded by your
- CONFIG.SYS file when you boot your system before DESQview or any other
- program can use expanded memory.
-
- ~Heading~ The Expanded Memory Technology
-
- This section offers a brief discussion, for the more technically minded,
- of how expanded memory works and of how DESQview takes advantage of the
- EMS4 memory technology to run multiple, large programs concurrently.
-
- ~Subhead~ PC Memory: an Overview
-
- Three types of memory can be installed on a PC:
-
- ~Item~ Conventional memory is memory between 0K and 1024K (1MB). It's the
- area of memory in which all programs must run ~dash~ because DOS 2.x/4.x
- only recognizes and supports programs loaded into this area. Even DOS
- extended programs need to use some portion of conventional memory.
-
- ~Item~ ExTENDed memory is memory above 1024K (1 megabyte) on a PC-AT or 386
- PC. (You can't install it on a PC or PC-XT.) Unlike conventional memory,
- exTENDed memory has an important limitation: exTENDed memory cannot be used
- for running most existing programs under DOS 2.x/4.x. It can only be used
- for RAM disks, print spoolers, and disk caches, or DOS extended programs
- ~dash~ with one exception. DESQview can run 64K of itself in exTENDed
- memory (see page ?qext?).
-
- ~Item~ ExPANDed memory is a special kind of extra memory. Unlike
- conventional and exTENDed memory, expanded memory doesn't occupy a specific
- range of fixed addresses. Instead, any area of expanded memory can be
- instantly "substituted for" (or mapped into) a like-sized area of
- conventional memory. There are two types of expanded memory. EMS3 memory
- is used to store data and swap. EMS4 (or EEMS) memory is used, in
- addition, to run programs.
-
- The following diagrams illustrate the basic configurations of memory that
- are possible, ExTENDed and expanded memory are optional.
-
- These areas represent conventional memory ~dash~ the memory between 0K and
- 1024K (1MB). The first 640K is used to run programs, and the remaining
- 384K is reserved for the system.
-
- These areas represent exTENDed memory ~dash~ the memory starting at 1MB
- and continuing to the end of the available address range. The stacking of
- exTENDed memory on top of conventional memory illustrates that exTENDed
- memory extends the 1MB of conventional memory.ExTENDed memory cannot be
- used for running most existing programs under DOS 2.x/4.x. It can only be
- used for RAM disks, print spoolers, and disk caches, or DOS extended
- programs ~dash~ with one exception. DESQview can run 64K of itself in
- exTENDed memory (see page ?qext?).
-
- These areas represent exPANDed memory ~dash~ a special kind of extra
- memory. On a PC, PC-XT, or PC-AT, expanded memory and exTENDed memory are
- physically different entities ~dash~ each requiring its own, special
- hardware memory board.
-
- ~Begin footnote~
-
- Although expanded memory boards can be configured to use part of their
- memory as exTENDed memory, exTENDed memory boards cannot be used as
- expanded memory ~dash~ except on a 386 PC.
-
- ~End footnote~
-
- This is illustrated by the fact that expanded memory is a separate block
- of memory that sits beside conventional and exTENDed memory. On a 386 PC,
- however, exTENDed memory can act like expanded memory ~dash~ by loading
- Quarterdeck Expanded Memory Manager 386 (QEMM-386) when you boot your
- system.
-
- ~Subhead~ How Conventional Memory Works
-
- Conventional memory is memory between 0K and 1024K (1MB). It's the area
- of memory in which all programs must run ~dash~ because DOS 2.x/4.x only
- recognizes and supports programs loaded into this area. Conventional
- memory is divided into three areas:
-
- ~Item~ Motherboard memory is the basic memory that comes with every PC.
- It's called "motherboard memory" because it's located on your computer's
- basic system board ~dash~ the "motherboard". It varies from 64K to 640K,
- depending on your PC.
-
- ~Item~ Add-on memory is used to extend the motherboard memory when it's
- less than 640K. For example, if there's 256K on your motherboard, you
- could "add on" up to 384K of additional memory. It's also called "add-on"
- memory because you must "add on" a physical memory board that contains this
- memory.
-
- ~Item~ Reserved memory is the memory between 640K and 1024K (1MB). It's
- called "reserved memory" because it's reserved for use by the system ~dash~
- for the ROM BIOS and hardware devices, such as display adapter boards,
- network boards, and hard disk controllers. Unused addresses in this region
- have no physical memory in them.
-
- The motherboard and add-on memories must form one contiguous block,
- starting at 0K and extending to a maximum of 640K. The reserved memory,
- however, is usually a collection of disjoint areas ~dash~ depending on your
- hardware configuration.
-
- The following diagram illustrates how conventional memory is divided up.
- The use of the first 640K is the same for all PCs. The allocation of
- memory in the reserved memory area, however, varies according to whether
- you have a PC, PC-XT, PC-AT or 386 PC (see the diagrams on the next page).
- The address values are in hexadecimal on one side of the chart, and in
- decimal on the other.
-
- Graphic not shown
-
- ~Subhead~ Why There's a 640K Limit
-
- When the IBM PC was first introduced in 1981, the standard "personal
- computer" was based on an 8080 processor, which could address a maximum of
- 64K of memory. The IBM PC, however, was built around the 8086/8088
- processor, which could address up to 1024K (1MB) of memory.
-
- Initially, the IBM PC's designers split the 1024 in half ~dash~ 512K for
- programs and 512K for the ROM BIOS and hardware devices. Then, a short
- time later, they changed their minds and "unreserved" the first 128K of the
- second 512K area. That's where the 640K limit came from: 640K=512K + 128K.
- High resolution graphics adapters such as the EGA or VGA have their own
- memory at 640K, this keeps programs which need graphics from using any
- contiguous addresses larger than 640K.
-
- ~Subhead~ How Reserved Memory is Allocated
-
- Reserved memory has three main uses:
-
- ~Item~ As the area for the ROM BIOS ~dash~ that part of DOS that's built
- into every PC and manages the hardware basics, such as reading the
- keyboard, driving the printer, and displaying information on the screen.
-
- ~Item~ As the"screen buffer" (or "video display RAM") ~dash~ the area of
- memory that stores the information that appears on the video display
- monitor.
-
- ~Item~ As the area for hardware-specific ROMs ~dash~ for example, the ROM
- for the enhanced graphics (EGA) display adapter and the hard
- diskcontroller.
-
- The diagrams on the next page illustrate the way that reserved memory is
- usually configured. The LIM-Data Area is the 64K area where most programs
- can "see" expanded memory. Unused areas are used by DESQview to run
- programs and parts of itself; the DV.COM program places parts of DESQview
- into these unused areas.
-
- ~Subhead~ How ExTENDed Memory works
-
- ExTENDed memory is memory starting at 1024K (1MB). It's only available on
- 286 and 386 PCs.
-
- Unlike conventional memory, exTENDed memory has an important limitation:
- exTENDed memory cannot be used for running most existing programs under DOS
- 2.x/4.x. It can only be used for RAM disks, print spoolers, and disk
- caches, or DOS extended programs ~dash~ with one exception. DESQview can
- run 64K of itself in exTENDed memory (see page ?qext?).
-
- ~Subhead~ How Expanded (EMS) Memory Works
-
- It's not necessary to understand how expanded memory works to use it,
- since DESQview handles all the details for you automatically. There are,
- however, "right" and "not so right" ways to use it. So, a basic
- understanding of the concepts and processes involved can help you be sure
- that you're getting the most out of your expanded memory board.
-
- Expanded memory is a special kind or extra or "shadow" memory. To have
- expanded memory on your system, you must purchase and install a separate
- (expanded) memory board ~dash~ except on a 386 PC. On a 386 PC, standard
- 386 exTENDed memory can act like expanded memory (by loading QEMM-386).
-
- There are two types of expanded memory. Conceptually, both work the same.
- The difference is in their limitations (which are imposed by the hardware
- design):
-
- ~Item~ EMS3 memory is only used to store data and to swap programs and
- "graphics sceens". Only 64K of expanded can be "seen" at one time.
-
- ~Item~ EMS4 (or EEMS) memory is also used to store data and to swap but, in
- addition, it can be used to run programs because more than 64K of memory
- can be "seen" at one time.
-
- The fundamental concept to understand about expanded memory is that DOS
- doesn't know it exists. As far as DOS is concerned, there's only 1MB of
- memory addresses, 0K to 1024K, but DOS does not know whether any memory is
- in all of these addresses.
-
- Given this, the way expanded memory works is basically simple. Any 64K
- chunk (which is a group of four 16K chunks) of expanded memory can be
- "mapped" into an unused 64K area of reserved memory. The key concept is
- mapping. Mapping is a technical term. What it means is that there's
- hardware on the expanded memory board that "fools" the PC into thinking
- that a 64K area of expanded memory is really in the unused 64K area of
- reserved memory.
-
- This is very much like looking at the ocean through the porthole of a ship.
- You can't see the whole ocean through the porthole, only the area directly
- outside. If you turn the ship, then you can see a different area of the
- ocean. The whole ocean is always there, you are just looking at a certain
- piece of it at one time.
-
- With expanded memory, if your program tells the expanded memory board to
- "map" some 64K chunk of expanded memory into the 64K area of reserved
- memory that starts at 784K then, when the program reads or stores data in
- the 784K to 848K area, it would, instead, actually be reading or storing in
- a 64K chunk of expanded memory ~dash~ as the following diagram illustrates.
-
- Effectively, the mapped 64K area of reserved memory is a porthole onto a
- larger area of expanded memory. It's just that, when you look through the
- porthole you can only "see" things that are exactly that size. If you want
- to see different "view" through the porthole you have to tell the window to
- "shift views" (like turning the ship). Then, you see only the new view you
- selected.
-
- And that's exactly how expanded memory works. A program that's been
- modified to know about expanded memory can access up to megabytes of data
- by looking at it in 64K chunks. The program might start by telling the
- expanded memory manager (the program that controls the "view") that it
- wants to use (view) a particular 64K area of expanded memory. Then it
- fills this area with data. When this 64K area is full, it then tells the
- expanded memory manager that it wants to use another 64K area. The
- information in the first 64K area is still there. It just can't be
- accessed until it is placed back into the viewing area.
-
- By switching among 64K areas of expanded memory, a program can thus access
- up to many megabytes of memory. Note that no information is moved. All
- the program's data is really stored in expanded memory and available at
- normal memory speeds. It's just that only one 64K area can be accessed at
- a time.
-
- ~Subhead~ How EMS4 and Enhanced Expanded Memory (EEMS) Works
-
- The deficiency of EMS3 memory is that most programs are larger than 64K
- and thus can't run in expanded memory (since 64K is the maximum area "seen"
- at one time). They can only use it for data storage. Two methods have
- been developed to remove this restriction. The first was the
- AST/Quardram/Ashton-Tate Enhanced Expanded Memory Specification (EEMS
- memory or enhanced-EMS memory). The second was EMS Version 4. Both EEMS
- and EMS4 are supersets of EMS memory. This means that they do everything
- that EMS3 memory does, in a 100% compatible way, and more besides. The
- major difference between EEMS and EMS4 is how the software driver is
- accessed, and DESQview can determine the correct method automatically.
- Each of these newer specifications can:
-
- ~Item~ Map an area larger than 64K (in fact any area from 16K to 1MB in
- size). This increases the amount of expanded memory which can be "seen" at
- one time.
-
- ~Item~ Map several non-adjacent areas. (An EMS3 board can only map to a
- single 64K area of reserved memory.)
-
- ~Item~ Map areas of memory below 640K as well as above 640K. This is where
- programs run, so if enough expanded memory can be mapped below 640K a
- program can actually be run from expanded memory.
-
- Taken together, these "enhanced" expanded memory capabilities make it
- possible to run not just one, but multiple programs concurrently in
- expanded memory. The process of multitasking (letting several programs run
- simultaneously by giving each a "slice" of time in turn) is now viable
- because context-switching (the process of allocating these time slices) can
- be done by simply changing the piece of expanded memory which is "seen"
- below 640K.
-
- Still, to take advantage of these "enhanced" capabilities, you might think
- that existing programs would have to be modified to take advantage of EMS4
- (or EEMS) memory. DESQview, however, eliminates this need. It conceals
- all the EMS4 mechanisms from the program and makes it appear (to the
- program) that it's running by itself in the PC's conventional (0K-640K)
- memory area. The program doesn't know it is running from expanded memory.
-
- ~Subhead~ The Capabilities of a 386 PC
-
- When you have a 386 PC, the need for a separate exPANDed memory board
- disappears because, on a 386 PC, standard 386 exTENDed memory can act like
- exPANDed memory, and almost all of the conventional memory becomes exPANDed
- memory as well. This is possible because the 80386 processor chip already
- has the necessary mapping capability built in. (In contrast, none of the
- conventional or exTENDed memory on a PC, PC-XT, or PC-AT can be mapped.)
-
- ~Subhead~ How DESQview Works WithExpanded Memory
-
- When you load DESQview, it examines your memory configuration and loads
- itself to take best advantage of your specific configuration:
-
- ~Item~ PC, PC-XT, or PC-AT
-
- ~dash~ If you've installed an EMS3 memory board and also loaded the
- exPANDed memory manager (EMM) for the board, DESQview recognizes and uses
- EMS memory.
-
- ~dash~ If you've installed an EMS4 or EEMS memory board and also loaded
- the exPANDed memory manager (EMM) for the board, DESQview recognizes and
- uses either EMS4 or EEMS memory.
-
- ~Item~ 386 PC
-
- ~dash~ If you've loaded QEMM-386, which makes standard exTENDed memory
- act like EMS4 exPANDed memory, DESQview recognizes and uses it. DESQview
- also activates its special 386 features such as screen virtualization and
- program protection, thus becoming DESQview 386.
-
- ~Item~ If you have only EMS3 memory on your system:
-
- ~dash~ DESQview allows multiple programs that store data in EMS memory to
- share the Page Frame simultaneously ~dash~ by monitoring program requests
- to the exPANDed memory manager and sorting them all out so that each
- program thinks it's the only program using exPANDed memory.
-
- ~dash~ DESQview swaps to exPANDed memory when it needs additional space
- to load other programs or to save graphics screens.
-
- ~Item~ If you have EEMS or fully hardware capable EMS4 memory on your
- system:
-
- ~dash~ DESQview additionally uses the enhanced features available to run
- multiple programs concurrently.
-
- When you start up DESQview, DESQview first examines your memory and figures
- out if the area immediately above 640K is available. (It generally will be
- when you have a monochrome or CGA display adapter board installed.) If
- memory is available, DESQview uses it to enlarge the 640k contiguous area
- that DOS uses for running programs.
-
- DESQview then examines the memory above your "screen buffer" and figures
- out if there are any other unused areas available in high memory
- (640K-1024K). If there are additional mappable memory areas, it puts part
- of itself in these areas (if you've started up DESQview using DV.COM). This
- frees up additional memory below 640K for running programs. (DESQview may
- also run small programs in these areas, in some cases.)
-
- The net result is that DESQview frees up the largest contiguous area below
- 640K it can find for running programs. DESQview examines the area between
- 0K and 640K to see if it is under the control of an exPANDed memory
- manager. If it is, then the capabilities of running programs in the
- exPANDed memory areas below 640K are enabled. The size of this area is the
- "Largest Available Expanded Memory" number in the Memory Status display.
-
- ~Subhead~ How DESQview Multitasks Your Programs in ExPANDed Memory
-
- Assuming the optimal configuration for any PC ~dash~ where the most memory
- possible below 1024K can be mapped ~dash~ DESQview can switch application
- programs in and out of conventional memory to run several large programs,
- even if their memory requirements, when added together, total more than
- 640K. Programs are not really running concurrently; DESQview is switching
- between them at speeds measuring in milliseconds. How this works is by
- tricking DOS into thinking each program is actually running in memory below
- 640, when really it is being mapped into the lower 640K from different
- areas of exPANDed memory. This tremendous enhancement in memory management
- is made possible by the capability to map, or substitute, one memory
- address for another very quickly.
-
- For instance, when you start Program A as the first window, all processing
- is done as if it is the only program in memory and is running in
- conventional memory; it is. Then, when you start another program, Program
- B, it is put into exPANDed memory, however DESQview, by sleight-of-hand
- known as bank-switching, makes it look like it's running in the lower 640K.
- What bank-switching does is to substitute a "pseudo-address" for the
- program's real memory address. (In a moment, we'll look at how DESQview, by
- using the features of your memory card, actually does this.) But this can
- only happen if that lower 640K is mappable. On a 386 with QEMM-386 loaded,
- it always is. On other machines, it must be made available by disabling the
- conventional memory and allowing the memory card to backfill that memory
- with exPANDed memory.
-
- The advantage ExPANDed memory has over conventional memory is that the
- hardware supports mapping registers. Mapping registers hold specific memory
- addresses which are placemarks for particular information your application
- programs want at run time. Once the data are so mapped, DESQview ~dash~ and
- thus your programs ~dash~ know where to find them.
-
- DESQview takes control of the memory mapping, tracking where it puts
- information for each program. In effect, then, each program running in a
- DESQview window has its own map. When the time slice switches from Program
- A to Program B, DESQview looks at the area of memory where Program B's
- information is stored, leaving program A's information where it was.
- DESQview remembers where the information for program A is mapped so that
- the next time information is needed for Program A, DESQview can find it
- immediately.
-
- Instantly, DESQview "shows" what it finds in program B's area to the memory
- below 640K-the conventional program area. How it does this is to
- substitute, or bank-switch one memory address for another. The program's
- real address may be in exPANDed memory, but its pseudo-address (where
- DESQview shows it to DOS) is in conventional memory-below 640K: it is
- mapped into conventional memory. Neither DOS nor the program know that the
- information comes from exPANDed memory.
-
- DESQview rapidly switches back and forth between each program's assigned
- exPANDed memory area each time that program is due a time slice. This
- movement is managed completely and transparently by DESQview. The only time
- you may be aware of it is when you see a minute hesitation in program
- operation, for instance, a scrolling screen display, as DESQview gives
- another window its time slice according to how you have set the ratio in
- Setup or Tune Performance. DESQview knows the program's information is in
- exPANDed memory, but the program does not. The program expects the
- information below 640K and as far as it knows, it gets it.
-
- The way programs execute their tasks for you is to store and retrieve
- information in memory addresses. Each piece of information is assigned an
- address and when a program asks for the data at a particular address, the
- memory card responds with the requested information. What DESQview, in
- combination with an exPANDed memory card and a memory manager really does,
- then, is to reassign, or "remap" the addresses to which the programs refer.
- DESQview can move between mapped addresses at normal memory speeds and can
- be pointing at information required for any number of programs ~dash~ not
- at the same time, but each in turn.
-
- The previous paragraphs describe how a normal DOS program, which only knows
- about memory below 640K, is handled. DESQview also knows about programs
- which have been written to use EMS. If the program itself is one which
- knows how to access exPANDed memory, what it does normally is to store data
- in exPANDed memory using the Page Frame. A Page Frame is a 64K block of
- memory whose address is assigned by the memory manager. The page frame is
- the program's "window" into exPANDed memory and is accessed at the memory
- address assigned by the memory manager.
-
- All programs which require a page frame use the same page frame inside of
- DESQview, in turn. (Outside DESQview all programs requiring a page frame
- also all use the same one ~dash~ the address of the page frame remains
- constant, unless you change it via the memory management software.) If the
- program has information stored in the page frame, DESQview saves the
- information when the program's time slice runs out and restores it the next
- time its time slice comes up. The program pages in and out of EMS as it
- would normally ~dash~ through the page frame ~dash~ to read and write its
- data. DESQview manages the program itself much like any other program, with
- the exception of altering how much exPANDed memory is available if the
- "Maximum Expanded Memory Size (in K)" is set in the Change a Program menu,
- and additionally saves and restores any mapping the EMS-aware program may
- do on its own.
-
- The whole point of disabling memory below 640 (on a PC or AT) and
- backfilling it in with exPANDed memory is so that MORE than 64K (which is
- the maximum a page frame can handle) can be mapped at a time. DESQview can
- make a significantly larger segment of memory visible below 640K where it
- can be used to run a program. Using DESQview memory management, the whole
- program is mapped at once. The important concept is that mapping is the
- process that makes it appear that a program residing in exPANDed memory is
- running below 640K. When that feat has been accomplished, DESQview can
- change the mapping very quickly between programs: the multitasking effect.
-
- Programs, then actually run in exPANDed memory, when their information can
- be addressed below 640K. What happens is, as each window comes up for its
- time-slice, the program is visible to DOS as if it were stored in the
- memory area below 640 ~dash~ and runs in exPANDed memory with a
- conventional memory address. When your system is optimally configured,
- DESQview can then run multiple programs, whose combined memory requirement
- total more than 640K, optimally, storing the programs in exPANDed memory
- and addressing them in conventional memory.
-
- ~Heading~ Optimizing How DESQview uses EMS4 or EEMS Memory
-
- The amount of power you get from your EMS4 or EEMS board depends on how
- you configure you computer's memory. Whether you choose the best or worst
- memory configuration, you can always have multiple programs active at the
- same time. Your memory configuration determines how many of these active
- programs are also concurrent ~dash~ that is, how many of these programs are
- both loaded into memory and simultaneously able to process information in
- foreground or background:
-
- ~Item~ If you install your EMS4 or EEMS board without making any changes to
- your memory configuration, you're only guaranteed to be able to run
- concurrently the number of programs that, collectively, fit in 535K
-
- ~Begin footnote~
-
- The 535K value applies to a PC-AT or 386 PC with an EGA or VGA display
- adapter. With a monochrome or hercules display adapter, you get 580K. With
- a CGA display adapter, you get 610K. See technical notes at the end of this
- appendix.
-
- ~End footnote~
-
- or less on a 640K system. (535K is called the size of the "first"
- program.)
-
- ~Item~ If you run one large program that takes most of the 535K3
- available, you may or may not be able to run other programs concurrently,
- depending on whether you can disconnect motherboard memory below 640K on
- your particular PC.
-
- ~Item~ If you are able to run "other" programs, each of them will have the
- same maximum size ~dash~ which is dependent on how much motherboard memory
- you've disconnected. This maximum size can vary from 0K to 528K3, and is
- called the size of the "other" program.
-
- If you modify your memory configuration to be the best possible for your
- overall hardware configuration, you are guaranteed to be able to run
- concurrently:
-
- ~Item~ In the worst case (on a system with an EGA and whose motherboard
- memory has been reduced to 256K), one 535K3 program and multiple 384K3
- programs.
-
- ~Item~ In the best case (on a system with a CGA and whose motherboard
- memory has been reduced to 128K or less), one 610K3 program and multiple
- 608K3 programs.
-
- Therefore, we strongly recommend that you optimize the use of exPANDed
- memory by disconnecting part of your conventional memory (below 640K) and
- letting your EMS4 or EEMS board provide it instead. You also must use
- DV.COM.
-
- IMPORTANT: The memory values (535K
-
- ~Begin footnote~
-
- The 535K value applies to a PC-AT or 386 PC with an EGA or VGA display
- adapter. With a monochrome or Hercules display adapter, you get 580K.
- With a CGA display adapter, you get 610K. See technical notes at the end of
- this appendix.
-
- ~End footnote~
-
- and so forth) used here and elsewhere in this appendix are based on the
- hardware configuration described in note 3 on page 177. These values may
- not be correct for your system. In fact, if you have a monochrome,
- Hercules, or color/graphics (CGA) display adapter, your values will be
- larger than those described. Be sure to read note 3 carefully, and also
- consult the tables on pages 173-174 and the other notes in the Technical
- Notes section on page 177. These values will definitely be incorrect if you
- don't use DV.COM or if you load any drivers (except the exPANDed memory
- manager), or any memory-resident programs when you boot or before you start
- up DESQview.
-
- ~Subhead~ An Overview
-
- Three factors affect how optimally your system is configured for using
- exPANDed memory:
-
- ~Item~ What brand and model of PC your have.
-
- ~Item~ What type of display adapter board (monitor) you have.
-
- ~Item~ If you're not running a 386 PC, how much memory you have installed
- below 640K.
-
- Based on these considerations, the optimal configuration is 64K IBM PC-XT
- or a 386 PC with a color/graphics (CGA) display adapter. However, this does
- you little good if you don't have this configuration. As a practical
- matter, optimizaton is confined to modifying the amount of memory installed
- below 640K.
-
- As noted above, if you don't make any changes to your memory configuration,
- you're always able to run concurrently any number of programs that,
- collectively, fit in 535K~dagger~ or less. Only when you run a large
- program, or otherwise fill the 535K3, does your memory configuration make
- any difference.
-
- If you have a PC or PC-AT for which it's impossible to disconnect any
- memory below 640K, no programs can run in exPANDed memory. The size of the
- programs that can run in exPANDed memory is directly related to the amount
- of memory below 640K that's been disconnected and supplied by your EMS4 or
- EEMS board instead. The purpose of disconnecting memory is to open up a
- large "porthole" below 640K into the exPANDed memory board. The larger the
- "porthole" below 640K, the more memory available to run a program in the
- exPANDed memory.
-
- The goal of optimization is to maximize the size of the "other" programs
- you run, after you fill the first 535K3. (Each of these "other" programs
- has the same maximum size.) The two primary factors that determine this
- maximum size are the display adapter board you're using and the amount of
- memory below 640K you've disconnected and let your EMS4 or EEMS board
- provide instead.
-
- ~Subhead~ How the Brand and Model of Your PC Affect Optimization
-
- The brand and model of your PC affect how much you can optimize your
- system. Although all PCs have the same basic structure, hardware details
- differ. For optimization, you need to know the minimum amount of
- motherboard memory your PC can have. This sets the limit for how much
- memory you can disconnect, because you usually can't disconnect all
- motherboard memory.
-
- Most IBM and Compaq machines can have a minimum motherboard memory of 256K.
- On Microchannel Architecture PS/2 computers such as the PS/2 Model 50 or
- 60, all of the motherboard memory can be disabled and filled in with
- exPANDed memory automatically when using QEMM-50/60, another product of
- Quarterdeck. If you have another brand or model of PC, you must consult the
- technical manual for that PC (or your dealer or the PC's manufacturer) to
- determine its minimum motherboard memory configuration.
-
- ~Subhead~ How Your Display Adapter Board Affects Optimization
-
- The type of display adapter board installed on your PC also affects how
- much you can optimize your system ~dash~ because each different type of
- display adapter board uses a different amount of memory in the 384K of high
- memory between 640K and 1024K. DESQview will use whatever high memory
- addresses the display adapter doesn't use to expand the area in which you
- can run programs.
-
- The amount of high memory that DESQview can use to run programs is affected
- by the type of display adapter board you have:
-
- ~Item~ If you have a monochrome or Hercules display adapter board, DESQview
- can use 64K of high memory to run programs.
-
- ~Item~ If you have a color/graphics (CGA) display adapter board, DESQview
- can use 96K of high memory to run programs.
-
- ~Item~ If you have an enhanced graphics (EGA) or Video Graphics Array (VGA)
- display adapter board, there is no additional high memory available for
- DESQview to run programs unless you are not using any graphics. f you are
- not using any programs which use graphics, then the VIDRAM program
- available with QRAM, QEMM-50/60, and QEMM-386 can recover up to 96K more
- memory from the video area that can then be used to run programs .
-
- Also, DESQview may use other parts of high memory to run parts of DESQview
- itself ~dash~ depending on your particular hardware configuration and the
- capabilities of your exPANDed memory manager. For example, if you are using
- an EGA or VGA adapter and a color monitor, DV can place up to 32K of itself
- in the area reserved for the monochrome display (since that area isn't
- being used). The area is only available if your exPANDed memory manager
- controls it, though.
-
- ~Subhead~ How Your Memory Configuration Affects Optimization
-
- As discussed in the section, The Expanded Memory Technology, a fully
- hardware capable EMS4 or any EEMS board achieves its power over an EMS3
- board by virtue of three additional capabilities that an EMS3 board doesn't
- have:
-
- ~Item~ An EMS4 or EEMS board can map any area of memory between 0K and
- 1024K (1MB), whereas an EMS3 board can map only a fixed 64K area which must
- be in high memory.
-
- ~Item~ An EMS4 or EEMS board can map multiple, non-adjacent areas
- simultaneously, whereas an EMS3 board can only map a single, 64K area.
-
- ~Item~ An EMS4 or EEMS board can map any area from 16K to 1MB (in 16K
- increments), whereas an EMS3 board can only map four, contiguous 16K areas.
-
- However, there is a limitation to EMS4 or EEMS memory. An EMS4 or EEMS
- board can only map an area of memory for which it supplies the RAM. It
- cannot map areas of memory already filled in by your PC's motherboard,
- network adapter, disk controller, or by an add-on or exTENDed memory board.
-
- For example, if you have 512K of conventional memory and let EMS4 or EEMS
- memory provide the missing 128K (to make 640K), only a single program can
- use the 512K area ~dash~ because it isn't EMS4 or EEMS memory and therefore
- can't be mapped. On the other hand, if you disconnect 256K of conventional
- memory and let EMS4 or EEMS memory supply 384K (256K+128K), only 256K is
- restricted for use by a single program. The size of multiple programs that
- can be running simultaneously in exPANDed memory therefore increases from
- 128K to 384K ~dash~ as the diagrams on the opposite page illustrate.
-
- Therefore, if you have an EMS4 or EEMS board, it may be to your advantage
- to disconnect part of your motherboard memory and remove any add-on boards
- from your system. (There is no advantage in doing this if you have an EMS3
- board or a 386 PC.)
-
- The optimal configuration occurs if you disconnect all your conventional
- memory. Then, all of conventional memory would be mappable and multiple
- programs up to 528K3 could be run simultaneously in exPANDed memory. But,
- you can't really disconnect all the memory on most PCs, PC-XTs, and PC-ATs
- ~dash~ because there is no provision for a 0K system. However, on a 386 PC
- you always get the optimal configuration ~dash~ because all of standard 386
- memory can be mapped, right down to 0K.
-
- You don't get the full 640K in the optimal configuration because DOS,
- device drivers, memory-resident programs, and parts of DESQview still
- occupy part of lower memory and can't be mapped. See note 3 on page 177 for
- an explanation of where the 535K value comes from. This value may not be
- correct for your system. Be sure to read note 3 carefully, and also consult
- the tables on pages 173-174 and the other notes in the Technical Notes
- section starting on page 177.
-
- These areas represent memory that's provided by your motherboard or by an
- add-on memory board. Since it's not provided by EMS4 or EEMS memory, it
- can't be mapped and can thus only be used by one program.
-
- These areas represent high memory that's not available for running
- programs.
-
- These areas represent a single block of EMS4 or EEMS memory that's being
- mapped into a like-sized block of conventional memory below 640K. Since
- different blocks of EMS4 or EEMS memory can be mapped simultaneously into
- the same block of conventional memory, different programs can be running
- concurrently in the same conventional memory ~dash~ at least as far as your
- PC'S processor is concerned.
-
- These areas represent blocks of EMS4 or EEMS memory that are available to
- run additional programs ~dash~ or, for data storage, for use as a RAM disk,
- print spooler, or disk cache, or for swapping graphics screens.
-
- ~Subhead~ Choosing the Optimization That Serves You Best
-
- The best way to optimize your system is by maximizing the "other" program
- size for your particular hardware configuration, since there's little you
- can do to affect the maximum "first" program size (see note 4 on page 177).
- The easiest way to understand your options is to examine the tables on
- these pages that apply to your particular PC. The table below summarizes
- the way memory is allocated for different PC configurations. The tables on
- the opposite page show in more detail the effects of different memory
- configurations on the "first" and "other" sizes.
-
- Table not shown.
-
- ~Subhead~ Table Legend
-
- The first four rows of each table list the hardware options that affect
- optimization. For the tables on the opposite page, the last two rows
- indicate the resulting "maximum" program sizes for the given amount of
- conventional memory. As Largest "Other" Program indicates, the smaller the
- amount of conventional memory installed on your system, the greater the
- maximum size of the "other" programs will be.
-
- These tables assume you've booted your system under MS-DOS 3.2, loaded an
- exPANDed memory manager (or QEMM-386 on a PC), allocated 15 file buffers,
- have DESQview "common" memory set to 17K, and have started up DESQview
- using DV.COM (XDV). These values will increase slightly if you run under
- DOS 2.0 through 3.1. They'll decrease if you use DOS 4.x or higher, load
- other device drivers or memory-resident programs (by the program's sizes)
- or if you don't start up DESQview with DV.COM (by an amount that's highly
- dependent on your hardware configuration ~dash~ see note 1 on page 177).
-
- ~Subhead~ Table Notes
-
- 1 "Mono/Hercules" means a monochrome or Hercules display adapter, "CGA" a
- color/graphics display adapter, and "EGA/VGA" an enhanced graphics or Video
- Graphics Array display adapter.
-
- 2 "PC/XT" means a PC or PC-XT. "AT/386" means a PC-AT or 386 PC.
-
- 3 "Conventional Memory" is the amount of memory installed in the 0K-640K
- area ~dash~ excluding memory supplied by an EMS4 or EEMS board. On a 386
- PC, you always get the 0K values, because all 640K can be mapped. 0K isn't
- possible on most other PCs.
-
- 4 Since exPANDed memory on a PC-AT or 386 PC can be used as exTENDed
- memory, there's no reason to have this configuration on these machines
- ~dash~ since you'll always get better "first" and "other" program sizes if
- you allocate part of your exPANDed memory as exTENDed memory.
-
- 5 DESQview uses 60K of exTENDed memory to load and run part of itself
- ~dash~ so, you must have at least 64K of exTENDed memory installed (see
- page 134).
-
- ~Heading~ The Memory Status Program
-
- This appendix has discussed the concept of "first" and "other" program
- sizes and how they apply to running programs on systems with particular
- hardware and memory configurations. The Memory Status program
-
- ~Begin footnote~
-
- The Memory Status program is included on your DESQview diskette. You will
- find it on the Open Window menu.
-
- ~End footnote~
-
- lets you see the actual "first" and "other" sizes (and other memory
- allocation information) for your system ~dash~ because Memory Status
- dynamically displays the current memory usage of your running system at any
- given moment.
-
- When you run Memory Status, the following window appears:
-
- The rows list the three memory areas of interest:
-
- ~Item~ Common Memory refers to the amount of memory in DESQview's Common
- Memory Buffer (see Appendix A). The values it shows are in bytes, not K.
- Generally, you can ignore these values. If Largest Available drops below
- 1,000 bytes, you might want to allocate more "common memory" by running the
- Setup program and add another 2K to the table.
-
- ~Item~ Conventional Memory refers to the memory available to you for
- running programs in the 0K-640K memory area of a PC. It consists of
- motherboard memory, add-on memory, and exPANDed memory used to fill out
- your system to 640K. On PCs with EMS4 or EEMS memory and 386 PCs with
- QEMM-386, this may include areas of memory above 640K that DESQview uses to
- run programs.
-
- Expanded Memory refers to the memory supplied by exPANDed memory boards.
- It excludes exPANDed memory used to fill out the 0K-640K area and exPANDed
- memory that was allocated to RAM disks, print spoolers or disk caches when
- you booted your system or before you started up DESQview.
-
- The columns list the current sizes of each of these memory areas:
-
- ~Item~ Total Memory is the total memory available on your system for the
- given memory category. This value is fixed at the time you start DESQview
- and depends on your hardware and memory configuration and on the device
- drivers, memory-resident programs, and disk buffers you loaded when you
- booted your system or before you started DESQview.
-
- ~Item~ Total Available is the total memory available at the current moment
- in the given memory category. This may consist of pieces of fragmented
- memory and thus doesn't necessarily reflect the contiguous memory needed to
- run a program.
-
- ~Item~ Largest Available is the largest area of contiguous memory available
- for a program at the current moment . You must subtract the 9K7 DESQview
- overhead from the Conventional Memory and Expanded Memory values.
-
- The most important numbers are:
-
- ~Item~ Largest Available Conventional Memory (middle right), which gives
- the size of the largest program that can be loaded at the current moment
- without swapping other programs or running the program in EMS4 or EEMS
- memory (also know as the "first program" size ~dash~ when Memory Status is
- run all by itself).
-
- ~Item~ Largest Available Expanded Memory (bottom right), which gives the
- size of the largest amount of exPANDed memory below 640K a program that
- can be run in at the current moment. This number will always be 0K if you
- don't have exPANDed memory, or if you have not backfilled conventional
- memory with exPANDed memory, or if you only have an EMS3 board installed on
- your system (even if it has an EMS4 driver).
-
- Because these numbers tell you:
-
- ~Item~ The largest program (less about 9K7) that you can run at the current
- moment without swapping a program to disk. This is the larger of Largest
- Available Conventional Memory and Largest Available Expanded Memory.
-
- ~Item~ The maximum "other" program size for your system. When you start up
- DESQview, the Largest Available Expanded Memory specifies this number, and
- should correspond to the red size shown in the tables on pages 154-155
- ~dash~ less the 9K DESQview overhead and the space taken by device drivers
- and memory-resident programs you loaded when you booted or before you
- started DESQview. This number will always be 0K if you don't have EMS4 or
- EEMS memory. It will also be 0K (zero) if you do not have any exPANDed
- memory available below 640K.
-
- The Memory Status program is small ~dash~ about 7K, including DESQview
- overhead. It runs in background and therefore dynamically reflects changes
- in memory usage on your system as they occur.
-
- This section only applies if you have an enhanced expanded memory (EEMS)
- board or EMS4 board installed on a PC, PC-XT, or PC-AT. It doesn't apply:
-
- If you have a regular expanded memory (EMS3) board. There are no steps
- you can take to improve how DESQview uses EMS3 memory or to use EMS3 memory
- to run programs. This is a fundamental limitation of the EMS3 hardware
- design. There are also no steps you can take to improve an EMS3 board which
- has an EMS4 software driver; the extra steps described here refer to
- hardware features not available for these boards.
-
- However, if you have a PC-AT, you should consider reconfiguringsome of
- your EMS memory as exTENDed memory (see page) ~dash~ because DESQview can
- run part of itself inexTENDed memory. Doing this reduces the amount of
- conventional memoryDESQview uses by 60K, and thus increases the size of the
- largest programyou can run by 60K.
-
- If you have less than 1MB of EMS4 or EEMS memory installed on your system.
-
- If you have a 386 PC. All the optimizations described in this section are
- done for you automatically. You always get the "best" possible memory
- configuration ~dash~ if you have at least 1MB of 386 exTENDed memory and
- have installed QEMM-386.
-
- The most important resources available to DESQview are the speed of your
- computer and the amount and type of memory you have installed. The faster
- your PC is, the more quickly DESQview (or any other program) can perform
- its functions. But speed is not DESQview's most critical resource; memory
- is. This appendix explains how knowing what kind of memory, how much of it
- you have and how that memory is configured will allow you to get the
- optimum performance from DESQview and the programs you run in DESQview.
-
- ~Subhead~ Expanded Memory: An Overview
-
- Most programs written for DOS 2.x to 4.x may access only the first 1024K
- (one megabyte) of memory, and typically they only use the first 640K, since
- the other memory areas between 640K and 1024K (called High Memory or
- sometimes Reserved Memory or the Upper Memory Blocks) are reserved for
- special functions. The maximum amount of memory that most programs and data
- can occupy is 640K, less what DOS requires. This first 640K of memory is
- called conventional memory. Without additional memory management, such as
- loading device drivers into High Memory or using DESQview's ability to load
- part of itself into memory above 640K, the largest single program you could
- ever run inside DESQview would be about 430K ~dash~ because DOS takes
- approximately 60K and DESQview uses about 150K. By using a memory manager
- and loading part of DESQview into high memory, you can significantly
- increase the amount of memory available to run programs.
-
- If you run multiple programs on a computer with only 640K, 430K is the
- maximum size of all the programs you can run concurrently, including all
- their data. (The term concurrently means that multiple programs are both
- loaded into the 0K-640K area of memory and are runing simultaneously in
- this area.) This amount of memory can be very limiting for many of today's
- DOS programs, so ways of reducing DOS and DESQview overhead are often used
- in order to increase the size of memory available for each program. In
- addition, DESQview, with additional memory, configured properly, can use as
- much additional memory above 640K as you can add to your system.There are
- differences, however, in how much and what kind of memory you can add to
- different types of PC's and how DESQview can make use of that memory.
-
- ~Subhead~ ExTENDed Memory
-
- An 80286 or 386 or i486 PC can also have many megabytes of another type of
- memory, called exTENDed memory. (You cannot install exTENDed memory on a PC
- or PC-XT) ExTENDed memory begins at 1024K and continues from there; it is
- NOT located between 640K and 1024K. A new classification of programs, using
- a "DOS Extender" can actually run in Extended memory and use some of the
- lower 640K to handle their work with DOS. These programs are specially
- written to be DOS Extended by the program's developer. Lotus 1-2-3 Release
- 3 is an example of one such program. Except for DOS Extended programs,
- exTENDed memory is severely limited in utility by the fact that most
- existing DOS programs can't use it, either to run themselves or to store
- data. A memory manager, however, can turn exTENDed memory into exPANDed
- memory, which DESQview can use.
-
- DESQview can also run 64K of itself in the first 64K of exTENDed memory
- (the High Memory Area or HMA). So, if you have an 80286 or 386 PC with
- exTENDed memory installed, DESQview's overhead (in conventional memory)
- drops by 64K to about 85K ~dash~ and the largest program you run
- accordingly increases by 64K to 495K. DESQview was the first DOS program to
- use the High Memory Area. Other programs have now also been modified to use
- it as well. The HMA may be used by only one program, so it should be
- used by the program which fills it the most. DESQview uses practically all
- of the HMA. Do not confuse high memory (the reserved memory between 640K
- and 1024K) with the HMA (High Memory Area), which is another piece 64K of
- memory starting at 1024.
-
- ~Subhead~ ExPANDed Memory
-
- In order to access more than 640K on all types of DOS computers (including
- 8088 and 8086), another type of memory was invented ~dash~ called exPANDed
- memory (EMS). It is possible to both store data and run programs in
- exPANDed memory, but only when the memory is configured properly and
- managed effectively. DESQview can manage exPANDed memory for multiple
- programs, even if those programs have not been modified to understand
- exPANDed memory themselves. DESQview is the "control program" you need to
- actually make use of all the capabilities of the EMS memory technology. EMS
- stands for ExPANDed memory Specification.
-
- ~Subhead~ 386 or i486 PCs
-
- On a 80386 or i486 PC, you DO NOT need a special EMS memory board. All you
- need is standard exTENDed memory, the Quarterdeck Expanded Memory Manager
- 386 (QEMM-386), and DESQview. QEMM-386 automatically converts a 386 or i486
- PC's exTENDed memory into exPANDed memory. DESQview acts as the control
- program to take advantage of the ability of the 386 PC's virtual 86 machine
- architecture to emulate EMS4 memory. To DESQview and QEMM-386, both an
- 80386SX or i486 PC have the same memory management features as a 386 PC, so
- all references to a 386 PC or an 80386 processor in this manual apply to an
- 80386SX or an i486 computer as well.
-
- ~Subhead~ Determining the Largest Program Size in DESQview
-
- The table below shows how DESQview allocates memory. With EMS or a 386 PC
- DESQview can reduce its overhead substantially ~dash~ even to zero in some
- cases ~dash~ by loading parts of itself in both exTENDed and EMS memory.
- Your values may be slightly smaller or much larger depending on your use of
- the LOADHI programs which come with Quarterdeck's QRAM and QEMM.
- ~Subhead~ About this Appendix
-
- Below is the table of contents for this appendix. Everyone should read the
- first three sections. Pages 148-156, The Expanded Memory Technology is for
- the more technically minded ~dash~ and can be skipped if you're not
- interested in the details. Optimizing How DESQview Uses EMS4 or EEMS Memory
- isn't mandatory reading either, but you may need to take some of the steps
- described in that section to get the Largest Program Size listed above.
-
- ~Subhead~ Expanded Memory That DESQview Supports
-
- DESQview's power increases when you add an expanded memory board to your
- PC, PC-XT, or PC-AT, or when you run DESQview on a 386 PC in conjunction
- with Quarterdeck Expanded Memory Manager 3861
- Begin footnote
- Notes start at the end of this appendix
- End footnote
- . (QEMM-386). There are three standard types of exPANDed memory. DESQview
- supports all of them:
-
- ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
- Memory Specification Version 3. This is usually abbreviated as EMS memory,
- EMS3 memory LIM memory, or sometimes LIM-EMS3 memory. EMS3 is a completely
- compatible subset of EMS4.
-
- ~Item~ Expanded memory that follows the Lotus/Intel/Microsoft Expanded
- Memory Specification Version 4. This is usually abbreviated as EMS memory,
- EMS4 memory, LIM4 memory, or sometimes LIM-EMS4 memory.
-
- ~Item~ Expanded memory that follows the AST/Quadram/Ashton-Tate Enhanced
- Expanded Memory Specification. This is usually abbreviated as EEMS memory
- or sometimes enhanced-EMS memory.
-
- Note that memory boards which were originally designed for EMS3 can have an
- EMS4 driver written for them, but they will not gain all of the new
- features of EMS4 because they lack the necessary hardware to perform the
- advanced functions. The most important of these is the ability to map more
- than 64K of memory at one time. EEMS memory boards can become EMS4 memory
- boards by simply obtaining an EMS4 software driver from the manufacturer,
- because the extra hardware necessary for the advanced functions is built
- into EEMS boards. Almost all references to EMS4 in this manual apply to
- EEMS as well.
-
- The extra DESQview capabilities available to you are directly related to
- the amount and type of exPANDed memory you have. DESQview uses each type to
- its fullest potential and automatically detects its presence, as long as
- you've loaded an exPANDed memory manager1~dagger~ (EMM) when you booted
- your system.
-
- ~Subhead~ Expanded Memory NOT Supported By DESQview
-
- DESQview is not compatible with exPANDed memory emulators on 80286 PC's
- which convert exTENDed memory or disk space into exPANDed memory without
- additional hardware. These programs use significant amounts of memory below
- 640K and are not fast enough to perform effectively with DESQview.
-
- ~Subhead~ Determining If You Have Expanded Memory Compatible with DESQview
-
- You have exPANDed memory that's compatible with DESQview:
-
- ~Item~ On a PC, PC-XT, or PC-AT, only if you've purchased an exPANDed
- memory board and installed it in your PC along with the corresponding
- exPANDed memory manager driver program. Examples of these are:
-
- ~dash~ EMS Version 3 (EMS3) boards, such as the Intel AboveBoard,
- BocaRAM, and Everex RAM 3000 and others which can use only 64K of exPANDed
- memory at any one time.
-
- ~dash~ EMS Version 4 (EMS4) boards (which also include EMS3
- compatibility) such as the Intel AboveBoard Plus, All Computers CHARGECARD,
- Computer Peripherals CPI-XMA, Everex RAM 8000, Newer Technologies
- Concentration, STB Rapidmeg, Teletek X-Bandit, DakotaRAM board, and any of
- the EEMS boards with an EMS4 driver. These boards can access more than 64K
- of exPANDed memory at any one time.
-
- ~dash~ Enhanced-EMS (EEMS) boards (which include EMS3 memory as a
- subset), such as the AST RAMpage, AST SixPak Premium, AST Advantage
- Premium, and PC Technologies RAMpartner.
-
- ~Item~ On a 386 PC, if you have installed the Quarterdeck Expanded Memory
- Manager 3861
-
- ~Begin footnote~
-
- Notes start at the end of this appendix
-
- ~End footnote~
-
- An exPANDed memory board is not the same as an exTENDed memory board. The
- similarity of names makes this a confusing point. Unless your memory board
- explicitly says that it's an exPANDed memory board that supports the EMS3,
- EMS4 or EEMS standard (or you have a 386 PC and QEMM-386), you don't have
- exPANDed memory. (See page 134 for information on using DESQview with
- exTENDed memory.)
-
- If you have Quarterdeck's Manifest program, you can determine what kind of
- memory you have, how it is configured and how DESQview and other programs
- can use it.
-
- ~Heading~ How DESQview Uses Expanded Memory
-
- DESQview uses exPANDed memory in three ways:
-
- ~Item~ As a "swapping" area, to temporarily store programs when DESQview
- needs additional space to load other programs or to save "graphics
- screens."
-
- ~Item~ As data storage, for programs that explicitly know about and use EMS
- memory for data ~dash~ such as 1-2-3 Release 2 or Release 3, WordPerfect 5,
- Paradox, and so forth.
-
- ~Item~ As program memory ~dash~ that is, memory that programs can run in.
-
- ExPANDed memory can also be used for RAM disks, print spoolers, and disk
- caches. When used for these, load these driver programs before you start up
- DESQview, so that all the programs you run can take advantage of their
- features.
-
- ~Subhead~ Using Expanded Memory as a "Swapping" Area
-
- When all the programs you want to run at the same time won't fit in
- memory, DESQview automatically manages memory for you by "swapping"
- programs in and out as you need them. Although swapping can be done to a
- hard disk, a RAM disk, or exPANDed memory, it's fastest when done to
- exPANDed memory. Any type of exPANDed memory may be used for swapping.
-
- When you start up a program, DESQview begins by finding a place in memory
- for it to run. If there's an unused area large enough, DESQview puts the
- program in that area.
-
- Programs loaded in the first 640K can run concurrently, since they're
- running in the memory that DOS knows about and supports. However, if
- there's no unused area large enough for the program to fit in, one or more
- of the programs already loaded are swapped out to make room ~dash~ which is
- to say, they're removed from memory and stored somewhere else temporarily.
-
- Programs that are swapped out are frozen (suspended) ~dash~ because those
- programs are no longer in memory, where they must be for your PC to execute
- them. When you switch back to a swapped out program, it's reloaded into
- memory and resumes where it left off when it was swapped out. (Programs
- that can't be arbitrarily suspended must be designated as nonswappable in
- your .DVP file.)
-
- The amount of time it takes to swap one program out and another program in
- is highly variable. If you're swapping to a hard disk, the time depends on
- the size of your program and the speed of your hard disk. Hard disk times
- vary enormously. A "fast" disk may swap three or even five times faster
- than a "normal" disk. Swapping to a RAM disk is faster, but still not
- optimal because, even though RAM disk is "memory," accessing it still
- incurs DOS overhead. The fastest method is swapping to expanded memory.
- It's virtually instantaneous.
-
- ~Subhead~ Using Expanded Memory as Data Storage
-
- Many programs ~dash~ such as 1-2-3 Release 2 ~dash~ use exPANDed memory to
- make large amounts of data available quickly. When DESQview is used on a
- system with exPANDed memory, it extends this capability by allowing several
- programs to use exPANDed memory at the same time. DESQview ensures that
- each program's use of exPANDed memory doesn't interfere with any other
- program's use of it.
-
- For example, you could have 1-2-3 Release 2 and WordPerfect each storing
- data in exPANDed memory while running in its own window. DESQview
- automatically manages the allocations of exPANDed memory so that each
- program "sees" only its own exPANDed memory.
-
- ~Subhead~ Using Expanded Memory as "Program" Memory
-
- Although swapping programs to exPANDed memory is nice, running programs in
- exPANDed memory is even better. You can run programs in exPANDed memory
- only if you have fully hardware compatible EMS4 memory, ENHANCED exPANDed
- memory (EEMS), or are using a 386 PC in conjunction with QEMM-386.
-
- Running programs in expanded memory means that you can run more programs
- than would normally fit in 640K. You can run as many programs
- simultaneously as will fit in your entire exPANDed memory, up to 32MB
- worth. The size of each program is less than 640K (not counting the data a
- program may store in exPANDed memory), and the total amount of memory used
- for running programs can be many megabytes.
-
- You cannot run programs in exPANDed memory if you only have EMS3 memory.
- The reason is that with EMS3 your PC can only "see" one 64K piece of EMS
- memory at any one time, while with fully hardware compatible EMS4 memory,
- or EEMS, it can "see" enough memory to run most existing DOS programs. You
- only get capability to run programs in EMS4 memory when DESQview manages
- your EMS4 memory.
-
- ~Subhead~ Optimizing The Use of the Memory You Have by Backfilling
-
- You may have to make sure the memory you have is available for optimal use
- by DESQview by backfilling conventional memory with EMS. If you do not have
- an 80386 PC, to properly use EMS4 memory, you may need to disconnect some
- of your conventional memory (below 640K) and substitute EMS4 memory for it.
- This is called backfilling conventional memory with exPANDed memory.
- Although you may be reluctant to disconnect perfectly good memory, if you
- don't, you severely limit the number and size of programs you can run in
- EMS4 memory. In the worst case, you can't run any programs in EMS4 memory
- ~dash~ see Optimizing How DESQview Uses EMS4 or EEMS Memory on page 167.
- Note that disconnecting conventional memory usually just involves changing
- switch settings on your memory board and the documentation for the board
- will usually explain how to do it. If not, contact your dealer or technical
- support at your EMS board's manufacturer.
-
- ~Heading~ Installing Expanded Memory
-
- Each time you start up DESQview, it checks for the presence of exPANDed
- memory and automatically uses it if it's available. So, it doesn't matter
- to DESQview whether you install DESQview first, exPANDed memory first, or
- both at the same time.
-
- ~Subhead~ If You Have a PC, PC-XT, or PC-AT or PS2
-
- When you install an expanded memory board on a PC, PC-XT, or PC- AT, be
- sure to follow the board manufacturer's instructions carefully. You must
- perform at least these four basic steps:
-
- ~Step~ Verify that the default factory switch settings are correct for your
- hardware configuration and, if they're not, make them correct.
-
- ~Step~ Open up your PC chassis and install the board in an empty slot. We
- recommend the board be populated with at least 2MB of memory.
-
- ~Step~ Install the exPANDed memory manager (EMM) for the board on your boot
- disk and in your CONFIG.SYS file.
-
- ~Step~ Reboot your system to load this exPANDed memory manager.
-
- Although it's sufficient to follow these steps, there are additional steps
- we recommend depending on the type of exPANDed memory board you've
- installed:
-
- ~Item~ EMS3 board.
-
- ~dash~ We recommend that you use part of your EMS3 board for swapping
- programs and graphics screens. This occurs automatically unless you've run
- the DESQview Setup program and specified an explicit SWAP drive to use (see
- Appendix A). Also, you can reduce DESQview's overhead if you have 64K of
- exTENDed memory (see page 134) which may require you to change your EMS
- board's settings if you don't already have exTENDed memory. There's no way
- to improve how DESQview uses EMS3 memory or to use EMS memory to run
- programs. This is a fundamental limitation of the EMS3 hardware design even
- if an EMS4 software driver is in place.
-
- ~Item~ EMS4 or EEMS board.
-
- ~dash~ We strongly recommend that you optimize the use of EMS4 or
- enhanced exPANDed memory by disabling part of your conventional memory and
- backfilling it with EMS4 memory. If you do, DESQview and QRAM, if you are
- using it, will automatically make optimal use of the memory your hardware
- makes available.
-
- ~Subhead~ If you Have a 386, 386SX, or i486 PC
-
- If you have an 80386, 386SX, or i486 PC (they're all the same to DESQview
- and QEMM-386, as far as memory management is concerned) there's no need to
- install a special exPANDed memory board because, on a 386 PC, standard 386
- exTENDed memory can act like exPANDed memory. There are only three things
- you must do:
-
- ~Step~ Install Quarterdeck Expanded Memory Manager 386 (QEMM-386) on your
- hard disk and in your CONFIG.SYS file.
-
- ~Step~ Reboot your system to load this exPANDed memory manager.
-
- ~Step~ Use as much of the unused area between 640K and 1024K as possible.
-
- ~dash~ Installing DESQview, QEMM-386 and running OPTIMIZE will usually do
- this for you automatically.
-
- ~Subhead~ Verifying That Expanded Memory is Correctly Installed
-
- Once you've installed your exPANDed memory board (except on a 386 PC),
- installed the exPANDed memory manager, and rebooted your system, it's
- useful to be able to determine whether you've installed everything
- correctly:
-
- ~Item~ When you reboot, watch the screen for information about exPANDed
- memory ~dash~ generally in the form of a count-up as expanded memory is
- tested. If no exPANDed memory information appears, something is wrong.
- Recheck your hardware for the proper configuration.
-
- ~Item~ If you're familiar with DESQview, run the Memory Status program (see
- page 175). If a nonzero number appears under Total Expanded Memory (bottom
- left number), DESQview has recognized that you have exPANDed memory
- installed. If the number is zero, you've done something wrong.
-
- Once your hardware is properly set up, you can also control DESQview and
- your programs use that memory by using the Change A Program Menu, DESQview
- Setup and the Tune Performance menu, as explained in appropriate sections
- of this manual.
-
- ~Heading~ The Expanded Memory Technology
-
- This section offers a brief discussion, for the more technically minded,
- of how exPANDed memory works and of how DESQview takes advantage of the
- EMS4 memory technology to run multiple, large programs concurrently.
-
- ~Subhead~ PC Memory: an Overview
-
- Three types of memory can be present on a PC: The following diagrams
- illustrate the basic configurations of memory that are possible.
-
- These areas represent conventional memory ~dash~ the memory between 0K and
- 1024K (1MB). The first 640K is used to run programs, and the remaining 384K
- is reserved for the system.
-
- These areas represent exTENDed memory ~dash~ the memory starting at 1MB
- and continuing to the end of the available address range. ExTENDed memory
- extends the 1MB of conventional memory. Most 286 and 386 PCs with 1 MB of
- memory have 640K of Conventional memory and 384K of exTENDed memory; they
- do NOT have memory between 640K and 1024K. ExTENDed memory can only be
- used for RAM disks, print spoolers, and disk caches, or DOS extended
- programs ~dash~ with one exception: DESQview can run 64K of itself in
- exTENDed memory (see page 134).
-
- These areas represent exPANDed memory ~dash~ a special kind of extra
- memory. On a PC, PC-XT, or PC-AT, expanded memory and exTENDed memory are
- physically different entities ~dash~ each requiring its own, special
- hardware memory board.
-
- ~Begin footnote~
-
- Although exPANDed memory boards can be configured to use part of their
- memory as exTENDed memory, exTENDed memory boards cannot be used as
- exPANDed memory ~dash~ except on a 386 PC.
-
- ~End footnote~
-
- Expanded memory is a separate block of memory that sits beside
- conventional and exTENDed memory. On a 386 PC, however, exTENDed memory can
- act like exPANDed memory ~dash~ by loading Quarterdeck Expanded Memory
- Manager 386 (QEMM-386) when you boot your system.
-
- ~Subhead~ How Conventional Memory Works
-
- Conventional memory is memory between 0K and 1024K (1MB). It's the area
- of memory in which all programs must run ~dash~ because DOS 2.x/4.x only
- recognizes and supports programs loaded into this area. Conventional memory
- is divided into three areas:
-
- ~Item~ Motherboard memory is the basic memory that comes with every PC.
- It's called "motherboard memory" because it's located on your computer's
- basic system board ~dash~ the "motherboard." It varies from 64K to 640K,
- depending on your PC.
-
- ~Item~ Add-on memory is used to extend the motherboard memory when it's
- less than 640K. For example, if there's 256K on your motherboard, you could
- "add on" up to 384K of additional memory. It's also called "add-on" memory
- because you must "add on" a physical memory board that contains this
- memory.
-
- ~Item~ High memory is the memory between 640K and 1024K (1MB). It's
- sometimes called "reserved memory" because it's reserved for use by the
- system ~dash~ for the ROM BIOS and hardware devices, such as display
- adapter boards, network boards, and hard disk controllers. Unused addresses
- in this region have no physical memory in them.
-
- The motherboard and add-on memories must form one contiguous block,
- starting at 0K and extending to a maximum of 640K. High memory, however, is
- usually a collection of disjoint areas ~dash~ depending on your hardware
- configuration.
-
- The following diagram illustrates how conventional memory is divided up.
- The use of the first 640K is the same for all PCs. The allocation of memory
- in high memory, however, varies according to whether you have a PC, PC-XT,
- PC-AT or 386 PC (see diagrams on the following page). The address values
- are in hexadecimal on one side of the chart, and in decimal on the other.
-
- ~Subhead~ How High Memory is Allocated
-
- High memory has three main uses:
-
- ~Item~ As the area for the ROM BIOS ~dash~ that part of DOS that's built
- into every PC and manages the hardware basics, such as reading the
- keyboard, driving the printer, and displaying information on the screen.
-
- ~Item~ As the video display RAM, which stores the information that appears
- on the video display monitor.
-
- ~Item~ As the area for hardware-specific ROMs ~dash~ for example, the ROM
- for the enhanced graphics (EGA) display adapter and the hard disk
- controller.
-
- The next diagram illustrate how high memory is usually configured. The Page
- Frame is the 64K area where most programs can "see" exPANDed memory. Unused
- areas are used by DESQview to run programs and parts of itself; the DV.COM2
- program places parts of DESQview into these unused areas. These areas may
- also be used by the LOADHI feature of QRAM and QEMM.
-
- ~Subhead~ How ExTENDed Memory works
-
- ExTENDed memory is simply more memory starting at 1024K (1MB). It's only
- available on 286 and 386 PCs. It may only be used when the PC is in
- "protected mode." DOS cannot function in "protected mode."
-
- Unlike conventional memory, exTENDed memory has an important limitation:
- exTENDed memory cannot be used for running standard DOS programs under DOS
- 2.x/4.x. It can only be used for RAM disks, print spoolers, and disk
- caches, or DOS extended programs ~dash~ with one exception: Some special
- programs, like DESQview, can run 64K of themselves in exTENDed memory (see
- page 134).
-
- ~Subhead~ How Expanded (EMS) Memory Works
-
- It's not necessary to understand how exPANDed memory works to use it,
- since DESQview handles all the details for you automatically. There are,
- however, "right" and "not so right" ways to use it. So, a basic
- understanding of the concepts and processes involved can help you be sure
- that you're getting the most out of your expanded memory board.
-
- There are three types of exPANDed memory. Conceptually, they work the same.
- The difference is in their limitations, which are imposed by the hardware
- design (see explanations of EMS3 and EMS4/EEMS earlier in this appendix).
-
- The fundamental concept to understand about exPANDed memory is that DOS
- doesn't know it exists. As far as DOS is concerned, there's only 1MB of
- memory addresses, 0K to 1024K, but DOS does not know whether any memory is
- in all of these addresses.
-
- ~Subhead~ EMS3 Only Maps 64K At A Time
-
- Any 64K piece of exPANDed memory can be "mapped" into an unused 64K area
- of high memory. The key concept is mapping. What it means is that there's
- hardware on the exPANDed memory board that "fools" the PC into thinking
- that a portion from the exPANDed memory board is really in an unused area
- of conventional memory. The previously unused area now has memory in it.
- The piece of memory at this location can be changed to some other piece
- without losing the original data.
-
- With exPANDed memory, if your program tells the exPANDed memory board to
- "map" some 64K chunk of exPANDed memory into the 64K area of high memory
- that starts at 784K then, when the program reads or stores data in the 784K
- to 848K area, it would, instead, actually be reading or storing in a 64K
- chunk of exPANDed memory ~dash~ as the following diagram illustrates:
-
- Effectively, the mapped 64K area of high memory is a porthole onto a larger
- area of exPANDed memory. It's just that, when you look through the porthole
- you can only "see" things that are exactly that size and you can only see
- one "view" at a time. If you want to see a different "view" through the
- porthole, you have to tell the window to "shift views" Then, you see only
- the new view you selected.
-
- A program that's been modified to know about exPANDed memory can access
- megabytes of data by looking at it in 64K chunks. The program might start
- by telling the exPANDed memory manager (the program that controls the
- "view") that it wants to use (view) a particular 64K area of exPANDed
- memory. Then it fills this area with data. When this 64K area is full, it
- then tells the exPANDed memory manager that it wants to use another 64K
- area. Note that no information is moved. All the program's data is really
- stored in exPANDed memory and available at normal memory speeds. It's just
- that only one 64K area can be accessed at a time.
-
- ~Subhead~ How EMS4 and Enhanced Expanded Memory (EEMS) Can Map More
- Memory
-
- The deficiency of EMS3 memory is that most programs are larger than 64K
- and thus can't run in exPANDed memory (since 64K is the maximum area "seen"
- at one time). They can only use it for data storage. Two methods have been
- developed to remove this restriction. The first was the
- AST/Quardram/Ashton-Tate Enhanced Expanded Memory Specification (EEMS
- memory or enhanced-EMS memory). The second was EMS Version 4. Both EEMS
- and EMS4 are supersets of EMS memory. The major difference between EEMS and
- EMS4 is how the software driver is accessed. DESQview can determine the
- correct method automatically. Each of these newer specifications can:
-
- ~Item~ Map an area larger than 64K (in fact any area from 16K to 1MB in
- size). This increases the amount of exPANDed memory which can be "seen" at
- one time.
-
- ~Item~ Map several non-adjacent areas. (An EMS3 board can only map to a
- single 64K area of high memory.)
-
- ~Item~ Map areas of memory below 640K as well as above 640K. This is where
- programs run, so if enough exPANDed memory can be mapped below 640K a
- program can actually be run from exPANDed memory.
-
- Taken together, these "enhanced" exPANDed memory capabilities make it
- possible to run not just one, but multiple programs concurrently in
- exPANDed memory. The process of multitasking is now viable because
- context-switching (the process of allocating these time slices) can be done
- by simply changing the piece of expanded memory which is "seen" below 640K.
- DESQview conceals all the EMS4 mechanisms from the program and makes it
- appear (to the program) that it's running by itself in the PC's
- conventional (0K-640K) memory area.
-
- ~Heading~ Technical Notes
-
- The notes in this section provide additional technical information about
- using an EMS4 or EEMS board with DESQview. Notes 1-6 are referenced by the
- text of this appendix. Notes 7-10 are not referenced in the text, but provide
- technical information not directly addressed elsewhere.
-
- 1 If you use a 386 expanded memory manager other than QEMM-386 (such as
- the Compaq Expanded Memory Manager), you may not be able to take advantage of
- all of DESQview's 386 PC capabilities.
-
- 2 All program sizes used in this appendix assume that you start up
- DESQview by invoking DV.COM (which is a copy of XDV.COM) rather than DV.EXE.
- When you start up DESQview using DV.COM, part of DESQview is loaded into
- exPANDed memory areas between 640K and 1024K in addition to the page frame,
- thus increasing the amount of conventional memory available to run programs.
- For more information on DV.COM, see Installation Notes.
-
- DV.COM won't work if exPANDed memory mapped between 640K and 1024K conflicts
- with some other device such as some types of local area network boards, or if
- the first 64K of exTENDed memory (the HMA) can't be accessed properly with
- some PC- compatibles. (This is the reason both DV.COM and DV.EXE are
- provided.) If DV.COM doesn't work on your system, you should try to isolate
- the reason. If you cannot get it to work, then delete DV.COM (a copy of it is
- saved as XDV.COM).
-
- 3 The memory sizes marked with a 3 in this appendix are computed for the
- following configuration:
-
- Hardware. An IBM PC, IBM PC-XT, IBM PC-AT, IBM Personal System/2, Compaq
- Deskpro 386, 100% IBM PC-compatible, or Deskpro 386 compatible with an
- enhanced graphics (EGA) or Video Graphics Array (VGA) display adapter, add-on
- memory removed or set to 0K, motherboard memory reduced to 256K, and an EMS4
- or EEMS memory board with a minimum of 1MB (see note 5).
-
- Software. Booted under MS-DOS 3.3, an exPANDed memory manager loaded, 15
- file buffers allocated (in CONFIG.SYS), DESQview "common memory" set to 17K
- (see Appendix A), DESQview started using DV.COM (see note 2), and no other
- device drivers or memory- resident programs loaded when you booted your
- system or before you started up DESQview.
-
- DESQview also requires about 9K overhead per program, which has already been
- subtracted out of all memory sizes used in this appendix (see note 7).
-
- See the tables on page 173-174 for more detailed information for your
- particular hardware configuration.
-
- The memory limits used in this appendix refer only to the amount of memory
- used by the program itself. If you're running a program ~dash~ such as
- 1-2-3 Release 2, Symphony, Framework II, or Paradox ~dash~ that uses exPANDed
- memory to store data, these programs still have full use of the exPANDed
- memory for data storage.
-
- 4 The primary way to improve the "first" program size is to delete all
- memory-resident programs (like Sidekick) from your AUTOEXEC.BAT file ~dash~
- in fact, we recommend running such programs in DESQview windows anyway (see
- Appendix E). You might also check that you aren't loading any unnecessary
- device drivers in CONFIG.SYS. We recommend against reducing the number of
- file handles (FILES in CONFIG.SYS) below 15, if you can. You can also use the
- LOADHI program which comes with QEMM or QRAM to move items loaded below 640K
- into the 640K to 1024K region. Loading a lot of items into this area may
- force some of DESQview to reside below 640K.
-
- 5 Maximum program sizes are ultimately limited by the total amount of
- memory installed on your system ~dash~ that is, by the sum of your
- motherboard memory, your add-on memory, and your EMS4 or EEMS memory.
-
- For example, if you have 128K of motherboard memory, 128K of add-on memory,
- and 2,048K of EMS4 memory, your total memory is 2,304K. Thus, the total of
- all programs loaded and running concurrently cannot exceed 2,304K ~dash~ less
- any memory you've set aside for RAM disks, print spoolers, disk caches. If
- you load more than 2,304K of programs, the remainder is swapped out to disk.
-
- The maximum amount of memory that DESQview can use for running programs is
- limited only by the amount of EMS4 memory that can be installed on your
- system ~dash~ generally, 32MB on a PC, PC-XT, or PC-AT and 64MB or more (with
- QEMM-386) on a 386 PC.
-
- 6 Some add-on memory boards (such as the AST SixPakPlus) permit you to
- disconnect all their memory by setting the switches to 0K. Most boards,
- however, don't allow a 0K setting. If your memory board doesn't allow 0K, you
- must remove it. If your memory board does allow a 0K setting, and has a clock
- or communications port, you may want to leave it installed so you can
- continue to use these features.
-
- 7 DESQview requires about 9K overhead per program (for most programs),
- which has already been subtracted from the "first" and "other" program sizes
- listed in this appendix. However, the 9K DESQview overhead has not been
- subtracted out of the sizes listed by the Memory Status program. So, the
- Total Available Conventional Memory and Largest Available Conventional Memory
- sizes will always be about 9K larger than the largest program you can run.
-
- When you use the Change a Program menu (see Chapter 7) to change a program's
- size, the number you enter for Memory Size (in K) should not include
- DESQview's overhead. So, when specifying a minimum memory size, always
- subtract 9K from numbers given by the Memory Status program before you enter
- that number in the Memory Size (in K) field. (To run very large programs you
- should enter a maximum program memory size, see page 121.)
-
- The overhead per program isn't always exactly 9K. For program script buffers
- above 1K, add the size over 1K. If your program uses EGA or VGA text modes
- that display more than 25 lines, add in the numbers in the table on page 123,
- less 4K (which is already included in the standard 9K value). For programs
- that have the Displays graphics information option set to ON, add 12K (for a
- total of 21K) if you have a CGA and you don't have any exPANDed memory. Also,
- most programs that come with DESQview ~dash~ DOS Services, Add a Program,
- Change a Program, and DESQview Companions ~dash~ require additional overhead
- varying from 1K-10K.
-
- 8 If you have a Hercules, enhanced graphics (EGA) or Video Graphics
- Array (VGA) display adapter, and run graphics programs that use EGA modes,
- DESQview tries to use exPANDed memory to retain the contents of the screen
- when you switch away to another program. It uses exPANDed memory because an
- EGA or VGA can have 64K, 128K, or 256K or more of data displayed on the
- screen ~dash~ an amount of information that can be saved quickly only by
- being moved to exPANDed memory. (If you don't have exPANDed memory, or not
- enough is available, "graphics screens" are saved on disk.)
-
- 9 When you run a communications program that you want to work in
- background, turn OFF its Can be swapped out of memory option (see page 120)
- and load it first if you want it to do high-speed communications ~dash~
- except on a 386 PC.If you have any other nonswappable programs, load them
- immediately after your communications program so as not to fragment memory.
-
- 10 Expanded memory is allocated on a request basis. When a program that
- supports exPANDed memory requests exPANDed memory, that memory is removed
- from the total pool of available exPANDed memory and is thus not available to
- run programs ~dash~ until the program releases it back to the pool or the
- window is closed.
-
- 11 Alternate Maps is a feature of EMS4 which DESQview will use if they
- are available. An "alternate map" is a method of remembering the way exPANDed
- memory is configured for a particular program. When "remembered" in an
- alternate map, a particular memory configuration can be reset very quickly;
- much faster than re-mapping many individual pages. If there is only one
- alternate map (in addition to the mapping hardware required for normal EMS
- operations, DESQview sets the alternate map to remember the original memory
- set-up when DESQview was started. If there is more than one alternate map,
- then DESQview uses one for itself and then allocates one alternate map per
- program. Thus the first windows opened will each be able to be brought back
- into memory as quickly as possible. When the alternate maps are exhausted,
- DESQview must resort to mapping individual pages for those programs.
-
- Alternate maps are an optimal feature of EMS4. DESQview will use them
- automatically if they are present. To find out if your exPANDed memory
- manager supports this feature you can use Quarterdeck's Manifest. Manifest
- lists Alternate Maps under "Expanded" ~dash~ and you must run manifest
- outside DESQview to determine whether or not your memory board supports this
- feature.
-